home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / OEMNXPIP.IN_ / oemnxpip.inf
INI File  |  1996-07-16  |  56KB  |  1,212 lines

  1. [Identification]
  2.     OptionType = NetTransport
  3. [Options]
  4.     NWLNKIPX
  5. [FileConstants]
  6. Manufacturer            = "Microsoft"
  7. ProductMajorVersion     = "4"
  8. ProductMinorVersion     = "0"
  9. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  10. NWLNKIPXEventDLL   = "%SystemRoot%\System32\netevent.dll"
  11. ProductNWLNKIPXName        = "NwlnkIpx"
  12. ProductNWLNKIPXImagePath   = "\SystemRoot\System32\drivers\nwlnkipx.sys"
  13. ProductNWLNKIPXSvcType     = "kernel"
  14. ProviderImagePath          = "%SystemRoot%\System32\nwprovau.dll"
  15. ProviderNameSpaces         = 1 
  16. ProviderGUID               = "{e02daaf0-7e9f-11cf-ae5a-00aa00a7112b}"
  17. ProductNWLNKIPXWshDllPath  = "%SystemRoot%\System32\wshisn.dll"
  18. NetRuleNWLNKIPXType        = "nwlnkIpx ipxTransport"
  19. NetRuleNWLNKIPXUse         = $(SoftwareType)" none none"
  20. NetRuleNWLNKIPXBindForm    = """NwlnkIpx"" yes yes simple"
  21. NetRuleNWLNKIPXBindable    = {"ipxnbTransport ipxTransport non non 100",+
  22.                               "ipxTransport ndisDriver non non 100",+
  23.                               "lmNetService ipxnbTransport non non 100",+
  24.                               "nwcWorkstation ipxTransport non non 100",+
  25.                               "lanmanServer ipxTransport non non 100"}
  26. NetRuleNWLNKIPXClass       = {"ipxnbTransport basic yes", "ipxTransport basic yes"}
  27. ProductNWLNKIPXOpSupport   = 134 
  28. ProductNWLNKNBName         = "NwlnkNb"
  29. ProductNWLNKNBImagePath    = "\SystemRoot\System32\drivers\nwlnknb.sys"
  30. ProductNWLNKNBSvcType      = "kernel"
  31. NetRuleNWLNKNBType         = "nwlnkNb ipxnbTransport"
  32. NetRuleNWLNKNBUse          = "transport none no"
  33. NetRuleNWLNKNBBindForm     = """NwlnkNb"" yes yes container"
  34. ProductNWLNKNBOpSupport    = 128 
  35. ProductNWLNKSPXName         = "NwlnkSpx"
  36. ProductNWLNKSPXImagePath    = "\SystemRoot\System32\drivers\nwlnkspx.sys"
  37. ProductNWLNKSPXSvcType      = "kernel"
  38. NetRuleNWLNKSPXType         = "nwlnkSpx spxTransport"
  39. NetRuleNWLNKSPXBindable     = {"spxTransport ipxTransport non non 100"}
  40. NetRuleNWLNKSPXClass        = {"spxTransport basic yes"}
  41. NetRuleNWLNKSPXUse          = "transport none no"
  42. NetRuleNWLNKSPXBindForm     = """NwlnkSpx"" yes yes container"
  43. CompetitorServiceName = "IPXSPXII"
  44. CompetitorKeyName  = $(!NTN_ServiceBase)"\"$(CompetitorServiceName)
  45. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(Option)Name)"\CurrentVersion"
  46. NWLNKIPXNetRuleKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkIpx\CurrentVersion\NetRules"
  47. NWLNKNBNetRuleKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkNb\CurrentVersion\NetRules"
  48. NWLNKIPXKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkIpx\CurrentVersion"
  49. NWLNKNBKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkNb\CurrentVersion"
  50. OldProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"Nwlinkipx"\CurrentVersion"
  51. LinkageKeyName  = $(!NTN_ServiceBase)"\NwlnkIpx\Linkage"
  52. RipKeyName  = $(!NTN_ServiceBase)"\Nwlnkrip"
  53. ServiceNWLNKKeyName = $(!NTN_ServiceBase)"\NwlnkIpx"
  54. ServiceNWLNKNBKeyName = $(!NTN_ServiceBase)"\NwlnkNB"
  55. ServiceKeyName  = $(!NTN_ServiceBase)
  56. [GeneralConstants]
  57. UtilityInf       = "UTILITY.INF"
  58. subroutineinf    = "SUBROUTN.INF"
  59. SoftwareType     = "transport"
  60. Exit_Code        = 0
  61. BillboardVisible = 0
  62. from             = ""
  63. to               = ""
  64. ExitCodeOk       = 0
  65. ExitCodeCancel   = 1
  66. ExitCodeFatal    = 2
  67. KeyNull          = ""
  68. MAXIMUM_ALLOWED    = 33554432
  69. RegistryErrorIndex = NO_ERROR
  70. KeyProduct    = ""
  71. KeyParameters = ""
  72. TRUE          = 1
  73. FALSE         = 0
  74. NoTitle       = 0
  75. ExitState     = "Active"
  76. OldVersionExisted = $(FALSE)
  77. DriverPath   = $(!STF_NTPATH)\drivers
  78. [date]
  79.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  80. [Identify]
  81.     read-syms Identification
  82.     set Status     = STATUS_SUCCESSFUL
  83.     set Identifier = $(OptionType)
  84.     set Media      = #("Source Media Descriptions", 1, 1)
  85.     Return $(Status) $(Identifier) $(Media)
  86. [ReturnOptions]
  87.     set Status         = STATUS_FAILED
  88.     set OptionList     = {}
  89.     set OptionTextList = {}
  90.     set LanguageList = ^(LanguagesSupported, 1)
  91.     Ifcontains(i) $($0) in $(LanguageList)
  92.         goto returnoptions
  93.     else
  94.         set Status = STATUS_NOLANGUAGE
  95.         goto finish_ReturnOptions
  96.     endif
  97. returnoptions = +
  98.     set OptionList     = ^(Options, 1)
  99.     set OptionTextList = ^(OptionsText$($0), 1)
  100.     set Status         = STATUS_SUCCESSFUL
  101. finish_ReturnOptions = +
  102.     Return $(Status) $(OptionList) $(OptionTextList)
  103. [InstallOption]
  104.     set Option   = $($1)
  105.     set SrcDir   = $($2)
  106.     set AddCopy  = $($3)
  107.     set DoCopy   = $($4)
  108.     set DoConfig = $($5)
  109.     set InstallFromRas = $($6)
  110.     Debug-Output "OEMNXPIP.INF: At InstallOption "$(Option)
  111.     set LanguageList = ^(LanguagesSupported, 1)
  112.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  113.         return STATUS_NOLANGUAGE
  114.     endif
  115.     Debug-Output "OEMNXPIP.INF: STF_CWDIR is: "$(!STF_CWDIR)
  116.     Debug-Output "OEMNXPIP.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  117.     set-subst LF = "\n"
  118.     read-syms GeneralConstants
  119.     read-syms FileConstants
  120.     read-syms DialogConstants$(!STF_LANGUAGE)
  121.     read-syms FileConstants$(!STF_LANGUAGE)
  122.     detect date
  123.     set-title  $(FunctionTitle)
  124.     set to   = Begin
  125.     set from = Begin
  126.     set CommonStatus = STATUS_SUCCESSFUL
  127.     EndWait
  128. Begin = +
  129.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  130.         set StartLabel = removeadapter
  131.         set OEM_ABANDON_OPTIONS = {}
  132.         set OEM_ABANDON_SOFTWARE = {+
  133.             $(ProductNWLNKSPXName),+
  134.             $(ProductNWLNKNBName),+
  135.             $(ProductNWLNKIPXName)}
  136.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  137.         set StartLabel = UpgradeSoftware
  138.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  139.         set StartLabel = configureadapter
  140.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  141.         set StartLabel = bindingadapter
  142.     else
  143.         set StartLabel = installadapter
  144.         set OEM_ABANDON_SOFTWARE = {}
  145.         set OEM_ABANDON_OPTIONS = {}
  146.     endif
  147.     set from = $(fatal)
  148.     set to   = $(fatal)
  149.     goto $(StartLabel)
  150. installadapter = +
  151.     Debug-Output "OEMNXPIP.INF: At installadapter"
  152.     Debug-Output "OEMNXPIP.INF: Opening key for the product"
  153.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  154.     Debug-Output "OEMNXPIP.INF: Back from opening key for the product"
  155.     Ifstr $(KeyProduct) != $(KeyNull)
  156.         CloseRegKey $(KeyProduct)
  157.         Shell $(UtilityInf), VerExistedDlg, $(Product$(Option)Title),+
  158.             $(ProductVersion)
  159.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  160.             Debug-Output "OEMNXPIP.INF: ShellCode error: cannot get an error string."
  161.             goto ShellCodeError
  162.         endif
  163.         goto end
  164.     endif
  165.     OpenRegKey $(!REG_H_LOCAL) "" $(CompetitorKeyName) $(!REG_KEY_READ) BadKey
  166.     Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  167.         Debug-Output "OEMNXPIP.INF:  Service "$(CompetitorServiceName)" exists.  CANNOT INSTALL!"
  168.         GetRegValue $(BadKey) "DisplayName" DisplayList
  169.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  170.             Set CompetitorDisplayName = *($(DisplayList),4)
  171.         Endif
  172.         CloseRegKey $(BadKey)
  173.         read-syms FatalError1$(!STF_LANGUAGE)
  174.         Goto fatal
  175.     Endif
  176.     Ifstr(i) $(!NTN_InstallMode) == "install"
  177.         Ifstr(i) $(DoCopy) == "YES"
  178.             Debug-Output "OEMNXPIP.INF: Calling DoAskSource 1"
  179.             Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  180.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  181.                Goto ShellCodeError
  182.             Else-Ifstr(i) $($R0) == STATUS_FAILED
  183.                Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  184.                ifint $($ShellCode) != $(!SHELL_CODE_OK)
  185.                   goto ShellCodeError
  186.                endif
  187.                set Error = $($R0)
  188.                Goto fatal
  189.             Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  190.                Goto successful
  191.             Endif
  192.             Set SrcDir = $($R1)
  193.         Endif
  194.         install "Install-Option"
  195.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  196.             Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  197.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  198.                 goto ShellCodeError
  199.             endif
  200.             set Error = $($R0)
  201.             goto fatal
  202.         endif
  203.     endif
  204.     Debug-Output "OEMNXPIP.INF: Put up box that we are installing"
  205.     set OEM_ABANDON_ON  = TRUE
  206.     read-syms Billboard1$(!STF_LANGUAGE)
  207.     Shell "subroutn.inf" PushBillboard NETSTATUSDLG $(Status)
  208.     Set BillboardVisible = 1
  209.     Set DoNWLNKIPX   = FALSE
  210.     Set DoNWLNKNB    = FALSE
  211.     Set DoNWLNKSPX   = FALSE
  212.     Ifstr(i) $(Option) == NWLNKIPX
  213.         Set DoNWLNKIPX   = TRUE
  214.         Set DoNWLNKNB    = TRUE
  215.         Set DoNWLNKSPX   = TRUE
  216.     Else
  217.         Debug-Output "OEMNXPIP.INF: Unrecognized option"
  218.     Endif
  219.     Debug-Output "OEMNXPIP.INF: Start the install"
  220.     StartWait
  221.     ifstr(i) $(DoNWLNKIPX) == TRUE
  222.         Set ThisOption = NWLNKIPX
  223.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  224.         Debug-Output "OEMNXPIP.INF: installing NWLNKIPX."
  225.         Shell $(UtilityInf), AddSoftwareComponent,+
  226.             $(Manufacturer),+
  227.             $(Product$(ThisOption)Name),+
  228.             $(Product$(ThisOption)Name),+
  229.             $(Product$(ThisOption)DisplayName),+
  230.             $(STF_CONTEXTINFNAME),+
  231.             $(Product$(ThisOption)ImagePath),+
  232.             $(Product$(ThisOption)SvcType),+
  233.             "PNP_TDI",+
  234.             {},"",+
  235.             $(NWLNKIPXEventDLL)
  236.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  237.             Debug-Output "OEMNXPIP.INF: ShellCode error, add software component"
  238.             goto ShellCodeError
  239.         endif
  240.         set RegistryErrorIndex = $($R0)
  241.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  242.             EndWait
  243.             Debug-Output "OEMNXPIP.INF: Registry error: add software components"
  244.             CloseRegKey $($R1)
  245.             CloseRegKey $($R2)
  246.             CloseRegKey $($R3)
  247.             CloseRegKey $($R4)
  248.             CloseRegKey $($R5)
  249.             goto fatalregistry
  250.         endif
  251.         Set NWLNKVersKeyHandle  = $($R1)
  252.         Set NWLNKRulesKeyHandle = $($R2)
  253.         Set NWLNKSvcKeyHandle   = $($R3)
  254.         Set NWLNKParmKeyHandle  = $($R4)
  255.         Set NWLNKLinkageHandle  = $($R5)
  256.         set UnattendInstallMode = 0
  257.         Ifstr(i) $(!STF_UNATTENDED) == "YES"
  258.            set UnattendInstallMode = 1
  259.            Debug-Output "IPX: UnattendInstallMode(1) = "$(UnattendInstallMode)
  260.         endif
  261.         Ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  262.            set UnattendInstallMode = 1
  263.            Debug-Output "IPX: UnattendInstallMode(2) = "$(UnattendInstallMode)
  264.         endif
  265.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  266.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  267.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  268.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  269.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  270.                            {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(Product$(ThisOption)OpSupport)},+
  271.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  272.                            {Review,$(NoTitle),$(!REG_VT_DWORD),1},+
  273.                            {STF_GUI_UNATTENDED,$(NoTitle),$(!REG_VT_SZ),$(!STF_GUI_UNATTENDED)},+
  274.                            {Unattend,$(NoTitle),$(!REG_VT_SZ),$(UnattendInstallMode)},+
  275.                            {AUTONETIPXFRAMETYPE,$(NoTitle),$(!REG_VT_DWORD),$(!AUTONETIPXFRAMETYPE)},+
  276.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  277.         Shell  $(UtilityInf), AddValueList, $(NWLNKVersKeyHandle), $(NewValueList)
  278.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  279.             Debug-Output "OEMNXPIP.INF: ShellCode error, add value list"
  280.             goto ShellCodeError
  281.         endif
  282.         set RegistryErrorIndex = $($R0)
  283.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  284.             EndWait
  285.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  286.             CloseRegKey $(NWLNKVersKeyHandle)
  287.             CloseRegKey $(NWLNKRulesKeyHandle)
  288.             CloseRegKey $(NWLNKSvcKeyHandle)
  289.             CloseRegKey $(NWLNKParmKeyHandle)
  290.             CloseRegkey $(NWLNKLinkageHandle)
  291.             goto fatalregistry
  292.         Endif
  293.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  294.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  295.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  296.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Bindable)},+
  297.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Class)},+
  298.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  299.         Shell  $(UtilityInf), AddValueList, $(NWLNKRulesKeyHandle), $(NewValueList)
  300.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  301.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  302.             goto ShellCodeError
  303.         endif
  304.         set RegistryErrorIndex = $($R0)
  305.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  306.             CloseRegKey $(NWLNKVersKeyHandle)
  307.             CloseRegKey $(NWLNKRulesKeyHandle)
  308.             CloseRegKey $(NWLNKParmKeyHandle)
  309.             CloseRegKey $(NWLNKLinkageHandle)
  310.             CloseRegKey $(NWLNKSvcKeyHandle)
  311.             EndWait
  312.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  313.             goto fatalregistry
  314.         endif
  315.         ifstr(i) $(!STF_PRODUCT) != "WINNT"
  316.             set RipRoute = 1
  317.         else
  318.             set RipRoute = 0
  319.         endif
  320.         Shell $(UtilityInf) AddValueList, $(NWLNKParmKeyHandle),+
  321.             {{"DedicatedRouter", $(NoTitle), $(!REG_VT_DWORD), 0} +
  322.              {"InitDatagrams", $(NoTitle), $(!REG_VT_DWORD), 10} +
  323.              {"MaxDatagrams", $(NoTitle), $(!REG_VT_DWORD), 50} +
  324.              {"RipUsageTime", $(NoTitle), $(!REG_VT_DWORD), 15} +
  325.              {"SourceRouteUsageTime", $(NoTitle), $(!REG_VT_DWORD), 15} +
  326.              {"SocketUniqueness",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  327.              {"SocketStart",   $(NoTitle), $(!REG_VT_DWORD), 16384} +
  328.              {"SocketEnd",   $(NoTitle), $(!REG_VT_DWORD), 24575} +
  329.              {"VirtualNetworkNumber",$(NoTitle), $(!REG_VT_DWORD), 0} +
  330.              {"RipRoute",       $(NoTitle), $(!REG_VT_DWORD), $(RipRoute)} +
  331.              {"RipTimeout",       $(NoTitle), $(!REG_VT_DWORD), 1} +
  332.              {"EnableWANRouter",  $(NoTitle), $(!REG_VT_DWORD), 0} +
  333.              {"ReplaceConfigDialog",  $(NoTitle), $(!REG_VT_DWORD), 0} +
  334.              {"RipCount",         $(NoTitle), $(!REG_VT_DWORD), 5}}
  335.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  336.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  337.             goto ShellCodeError
  338.         endif
  339.         set RegistryErrorIndex = $($R0)
  340.         CloseRegKey $(NWLNKVersKeyHandle)
  341.         CloseRegKey $(NWLNKRulesKeyHandle)
  342.         CloseRegKey $(NWLNKParmKeyHandle)
  343.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  344.             CloseRegKey $(NWLNKLinkageHandle)
  345.             CloseRegKey $(NWLNKSvcKeyHandle)
  346.             EndWait
  347.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  348.             goto fatalregistry
  349.         endif
  350.         CreateRegKey $(NWLNKSvcKeyHandle) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  351.         ifstr(i) $(KeyPerformance) != ""
  352.             Set NewValueList = {+
  353.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseIPXPerformanceData"},+
  354.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectIPXPerformanceData"},+
  355.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  356.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenIPXPerformanceData"},+
  357.                 }
  358.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  359.             CloseRegKey $(KeyPerformance)
  360.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  361.                 Debug-Output "OEMNXPIP.INF: ShellCode error."
  362.                 goto ShellCodeError
  363.             endif
  364.         endif
  365.         Shell "" CreateNWLNKConfiguration $(NWLNKSvcKeyHandle)
  366.         CloseRegKey $(NWLNKSvcKeyHandle)
  367.         Set RegistryErrorIndex = $($R0)
  368.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  369.             EndWait
  370.             Debug-Output "OEMNXPIP.INF: Registry error: Create NWLNK configuration."
  371.             goto fatalregistry
  372.         endif
  373.         Shell $(UtilityInf), AddWinsockInfo, +
  374.              $(Product$(ThisOption)Name), +
  375.              $(Product$(ThisOption)WshDllPath), +
  376.              16,14
  377.         Shell $(UtilityInf) AddMixRpcProtocol "Netbios" "nwlnkipx" "ncacn_nb_ipx" "rpcltccm.dll" "RpcLtScm.Dll"
  378.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Browser\Parameters" $(MAXIMUM_ALLOWED) BrowserParamKey
  379.         ifstr(i) $(BrowserParamKey) != ""
  380.             SetRegValue $(BrowserParamKey) {DirectHostBinding,$(NoTitle),$(!REG_VT_MULTI_SZ),{"\Device\NwlnkIpx","\Device\NwlnkNb"}}
  381.             CloseRegKey $(BrowserParamKey)
  382.         Endif
  383.     Endif
  384.     Ifstr(i) $(DoNWLNKNB) == TRUE
  385.         Set ThisOption = NWLNKNB
  386.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  387.         Debug-Output "OEMNXPIP.INF: installing NWLNKNB..."
  388.         Shell $(UtilityInf), AddSoftwareComponent,+
  389.             $(Manufacturer),+
  390.             $(Product$(ThisOption)Name),+
  391.             $(Product$(ThisOption)Name),+
  392.             $(Product$(ThisOption)DisplayName),+
  393.             $(STF_CONTEXTINFNAME),+
  394.             $(Product$(ThisOption)ImagePath),+
  395.             $(Product$(ThisOption)SvcType),+
  396.             "PNP_TDI",+
  397.             {},+
  398.             "",+
  399.             $(NWLNKIPXEventDLL)
  400.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  401.             Debug-Output "OEMNXPIP.INF: ShellCode error"
  402.             goto ShellCodeError
  403.         endif
  404.         set RegistryErrorIndex = $($R0)
  405.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  406.             EndWait
  407.             Debug-Output "OEMNXPIP.INF: Registry error: add software components"
  408.             CloseRegKey $($R1)
  409.             CloseRegKey $($R2)
  410.             CloseRegKey $($R3)
  411.             CloseRegKey $($R4)
  412.             CloseRegKey $($R5)
  413.             goto fatalregistry
  414.         endif
  415.         Set NWLNKNBProductKey      = $($R1)
  416.         Set NWLNKNBNetRuleKey      = $($R2)
  417.         Set NWLNKNBServiceKey      = $($R3)
  418.         Set NWLNKNBParameterKey    = $($R4)
  419.         Set NWLNKNBLinkageKey      = $($R5)
  420.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  421.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  422.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  423.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  424.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  425.                            {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(Product$(ThisOption)OpSupport)},+
  426.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  427.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  428.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBProductKey), $(NewValueList)
  429.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  430.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  431.             goto ShellCodeError
  432.         endif
  433.         set RegistryErrorIndex = $($R0)
  434.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  435.             EndWait
  436.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  437.             CloseRegKey $(NWLNKNBProductKey)
  438.             CloseRegKey $(NWLNKNBNetRuleKey)
  439.             CloseRegKey $(NWLNKNBServiceKey)
  440.             CloseRegKey $(NWLNKNBParameterKey)
  441.             CloseRegKey $(NWLNKNBLinkageKey)
  442.             goto fatalregistry
  443.         endif
  444.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  445.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  446.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  447.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  448.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBNetRuleKey), $(NewValueList)
  449.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  450.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  451.             goto ShellCodeError
  452.         endif
  453.         set RegistryErrorIndex = $($R0)
  454.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  455.             EndWait
  456.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  457.             CloseRegKey $(NWLNKNBProductKey)
  458.             CloseRegKey $(NWLNKNBNetRuleKey)
  459.             CloseRegKey $(NWLNKNBServiceKey)
  460.             CloseRegKey $(NWLNKNBParameterKey)
  461.             CloseRegKey $(NWLNKNBLinkageKey)
  462.             goto fatalregistry
  463.         endif
  464.         Set NewValueList = {{NbProvider,$(NoTitle),$(!REG_VT_SZ),"_ipx"},+
  465.                 {EndPoint,$(NoTitle),$(!REG_VT_DWORD),1}}
  466.         Shell  $(UtilityInf), AddValueList, $(NWLNKNBParameterKey), $(NewValueList)
  467.         Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  468.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  469.             goto ShellCodeError
  470.         Endif
  471.         set RegistryErrorIndex = $($R0)
  472.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  473.             EndWait
  474.             CloseRegKey $(NWLNKNBProductKey)
  475.             CloseRegKey $(NWLNKNBNetRuleKey)
  476.             CloseRegKey $(NWLNKNBServiceKey)
  477.             CloseRegKey $(NWLNKNBParameterKey)
  478.             CloseRegKey $(NWLNKNBLinkageKey)
  479.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  480.             goto fatalregistry
  481.         endif
  482.         Shell $(UtilityInf) AddValueList, $(NWLNKNBParameterKey),+
  483.             {{"KeepaliveTimeout", $(NoTitle), $(!REG_VT_DWORD), 60} +
  484.              {"KeepaliveCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  485.              {"ConnectionTimeout",$(NoTitle), $(!REG_VT_DWORD), 2} +
  486.              {"ConnectionCount",  $(NoTitle), $(!REG_VT_DWORD), 5} +
  487.              {"BroadcastTimeout", $(NoTitle), $(!REG_VT_DWORD), 1} +
  488.              {"BroadcastCount",   $(NoTitle), $(!REG_VT_DWORD), 3} +
  489.              {"Internet",         $(NoTitle), $(!REG_VT_DWORD), 1}}
  490.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  491.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  492.             goto ShellCodeError
  493.         endif
  494.         set RegistryErrorIndex = $($R0)
  495.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  496.             EndWait
  497.             CloseRegKey $(NWLNKNBProductKey)
  498.             CloseRegKey $(NWLNKNBNetRuleKey)
  499.             CloseRegKey $(NWLNKNBServiceKey)
  500.             CloseRegKey $(NWLNKNBParameterKey)
  501.             CloseRegKey $(NWLNKNBLinkageKey)
  502.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  503.             goto fatalregistry
  504.         endif
  505.         CreateRegKey $(NWLNKNBServiceKey) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  506.         ifstr(i) $(KeyPerformance) != ""
  507.             Set NewValueList = {+
  508.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseNWNBPerformanceData"},+
  509.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectNWNBPerformanceData"},+
  510.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  511.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenNWNBPerformanceData"},+
  512.                 }
  513.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  514.             CloseRegKey $(KeyPerformance)
  515.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  516.                 Debug-Output "OEMNXPIP.INF: ShellCode error."
  517.                 goto ShellCodeError
  518.             endif
  519.             set RegistryErrorIndex = $($R0)
  520.         endif
  521.         CloseRegKey $(NWLNKNBProductKey)
  522.         CloseRegKey $(NWLNKNBNetRuleKey)
  523.         CloseRegKey $(NWLNKNBServiceKey)
  524.         CloseRegKey $(NWLNKNBParameterKey)
  525.         CloseRegKey $(NWLNKNBLinkageKey)
  526.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  527.             EndWait
  528.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  529.             goto fatalregistry
  530.         endif
  531.     Endif
  532.     Ifstr(i) $(DoNWLNKSPX) == TRUE
  533.         Set ThisOption = NWLNKSPX
  534.         Set OEM_ABANDON_SOFTWARE = >($(OEM_ABANDON_SOFTWARE), $(Product$(ThisOption)Name))
  535.         Debug-Output "OEMNXPIP.INF: installing NWLNKSPX..."
  536.         Shell $(UtilityInf), AddSoftwareComponent,+
  537.             $(Manufacturer),+
  538.             $(Product$(ThisOption)Name),+
  539.             $(Product$(ThisOption)Name),+
  540.             $(Product$(ThisOption)DisplayName),+
  541.             $(STF_CONTEXTINFNAME),+
  542.             $(Product$(ThisOption)ImagePath),+
  543.             $(Product$(ThisOption)SvcType),+
  544.             "",+
  545.             {},"",+
  546.             $(NWLNKIPXEventDLL)
  547.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  548.             Debug-Output "OEMNXPIP.INF: ShellCode error"
  549.             goto ShellCodeError
  550.         endif
  551.         set RegistryErrorIndex = $($R0)
  552.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  553.             EndWait
  554.             Debug-Output "OEMNXPIP.INF: Registry error: add software components"
  555.             CloseRegKey $($R1)
  556.             CloseRegKey $($R2)
  557.             CloseRegKey $($R3)
  558.             CloseRegKey $($R4)
  559.             CloseRegKey $($R5)
  560.             goto fatalregistry
  561.         endif
  562.         Set NWLNKSPXProductKey      = $($R1)
  563.         Set NWLNKSPXNetRuleKey      = $($R2)
  564.         Set NWLNKSPXServiceKey      = $($R3)
  565.         Set NWLNKSPXParameterKey    = $($R4)
  566.         Set NWLNKSPXLinkageKey      = $($R5)
  567.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  568.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  569.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  570.                            {Hidden,$(NoTitle),$(!REG_VT_DWORD),1},+
  571.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Title)},+
  572.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Description)},+
  573.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(ThisOption)Name)},+
  574.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  575.         Shell  $(UtilityInf), AddValueList, $(NWLNKSPXProductKey), $(NewValueList)
  576.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  577.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  578.             goto ShellCodeError
  579.         endif
  580.         set RegistryErrorIndex = $($R0)
  581.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  582.             EndWait
  583.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  584.             CloseRegKey $(NWLNKSPXProductKey)
  585.             CloseRegKey $(NWLNKSPXNetRuleKey)
  586.             CloseRegKey $(NWLNKSPXServiceKey)
  587.             CloseRegKey $(NWLNKSPXParameterKey)
  588.             CloseRegKey $(NWLNKSPXLinkageKey)
  589.             goto fatalregistry
  590.         endif
  591.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Type)},+
  592.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)Use)},+
  593.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(ThisOption)BindForm)},+
  594.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Bindable)},+
  595.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(ThisOption)Class)},+
  596.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(ThisOption)} }
  597.         Shell  $(UtilityInf), AddValueList, $(NWLNKSPXNetRuleKey), $(NewValueList)
  598.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  599.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  600.             goto ShellCodeError
  601.         endif
  602.         set RegistryErrorIndex = $($R0)
  603.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  604.             EndWait
  605.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  606.             CloseRegKey $(NWLNKSPXProductKey)
  607.             CloseRegKey $(NWLNKSPXNetRuleKey)
  608.             CloseRegKey $(NWLNKSPXServiceKey)
  609.             CloseRegKey $(NWLNKSPXParameterKey)
  610.             CloseRegKey $(NWLNKSPXLinkageKey)
  611.             goto fatalregistry
  612.         endif
  613.         Shell $(UtilityInf) AddValueList, $(NWLNKSPXParameterKey),+
  614.             {{"ConnectionCount", $(NoTitle), $(!REG_VT_DWORD), 5} +
  615.              {"ConnectionTimeout",   $(NoTitle), $(!REG_VT_DWORD), 2} +
  616.              {"InitPackets",$(NoTitle), $(!REG_VT_DWORD), 5} +
  617.              {"MaxPackets",  $(NoTitle), $(!REG_VT_DWORD), 48} +
  618.              {"InitialRetransmissionTime", $(NoTitle), $(!REG_VT_DWORD), 500} +
  619.              {"KeepAliveCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  620.              {"WindowSize",   $(NoTitle), $(!REG_VT_DWORD), 4} +
  621.              {"SpxSocketRangeStart",   $(NoTitle), $(!REG_VT_DWORD), 24576} +
  622.              {"SpxSocketRangeEnd",   $(NoTitle), $(!REG_VT_DWORD), 32767} +
  623.              {"SpxSocketUniqueness",   $(NoTitle), $(!REG_VT_DWORD), 1} +
  624.              {"MaxPacketSize",   $(NoTitle), $(!REG_VT_DWORD), 4096} +
  625.              {"RetransmissionCount",   $(NoTitle), $(!REG_VT_DWORD), 8} +
  626.              {"KeepAliveTimeout",         $(NoTitle), $(!REG_VT_DWORD), 12}}
  627.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  628.             Debug-Output "OEMNXPIP.INF: ShellCode error."
  629.             goto ShellCodeError
  630.         endif
  631.         set RegistryErrorIndex = $($R0)
  632.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  633.             EndWait
  634.             CloseRegKey $(NWLNKSPXProductKey)
  635.             CloseRegKey $(NWLNKSPXNetRuleKey)
  636.             CloseRegKey $(NWLNKSPXServiceKey)
  637.             CloseRegKey $(NWLNKSPXParameterKey)
  638.             CloseRegKey $(NWLNKSPXLinkageKey)
  639.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  640.             goto fatalregistry
  641.         endif
  642.         CreateRegKey $(NWLNKSPXServiceKey) {"Performance",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyPerformance
  643.         ifstr(i) $(KeyPerformance) != ""
  644.             Set NewValueList = {+
  645.                 {Close,$(NoTitle),$(!REG_VT_SZ),"CloseSPXPerformanceData"},+
  646.                 {Collect,$(NoTitle),$(!REG_VT_SZ),"CollectSPXPerformanceData"},+
  647.                 {Library,$(NoTitle),$(!REG_VT_SZ),"perfctrs.dll"},+
  648.                 {Open,$(NoTitle),$(!REG_VT_SZ),"OpenSPXPerformanceData"},+
  649.                 }
  650.             Shell  $(UtilityInf), AddValueList, $(KeyPerformance), $(NewValueList)
  651.             CloseRegKey $(KeyPerformance)
  652.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  653.                 Debug-Output "OEMNXPIP.INF: ShellCode error."
  654.                 goto ShellCodeError
  655.             endif
  656.             set RegistryErrorIndex = $($R0)
  657.         endif
  658.         CloseRegKey $(NWLNKSPXProductKey)
  659.         CloseRegKey $(NWLNKSPXNetRuleKey)
  660.         CloseRegKey $(NWLNKSPXServiceKey)
  661.         CloseRegKey $(NWLNKSPXParameterKey)
  662.         CloseRegKey $(NWLNKSPXLinkageKey)
  663.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  664.             EndWait
  665.             Debug-Output "OEMNXPIP.INF: Registry error: add value list."
  666.             goto fatalregistry
  667.         endif
  668.         Shell $(UtilityInf), AddWinsockInfo, +
  669.              $(Product$(ThisOption)Name), +
  670.              $(ProductNWLNKIPXWshDllPath), +
  671.              16,14
  672.     Shell $(UtilityInf), AddNameSpaceProvider, +
  673.             $(ProductNWLNKIPXDisplayName), +
  674.             $(ProviderImagePath), +
  675.             $(ProviderNameSpaces), +
  676.             TRUE, +
  677.             $(ProviderGUID)
  678.     Shell $(UtilityInf), AddServiceProvider, $(ProductNWLNKIPXName), +
  679.         $(ProviderImagePath), $(ProductNWLNKIPXDisplayName), 8
  680.         Shell $(UtilityInf) AddClientRpcProtocol "ncadg_ipx" "RpcLtCcm.Dll"
  681.         Shell $(UtilityInf) AddClientRpcProtocol "ncacn_spx" "RpcLtCcm.Dll"
  682.         Shell $(UtilityInf) AddServerRpcProtocol "ncadg_ipx" "RpcLtScm.Dll"
  683.         Shell $(UtilityInf) AddServerRpcProtocol "ncacn_spx" "RpcLtScm.Dll"
  684.     Endif
  685.     ifstr(i) $(!STF_GUI_UNATTENDED) != YES
  686.         ifstr(i) $(InstallFromRas) != "YES"
  687.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\RASMan" $(MAXIMUM_ALLOWED) RASKey
  688.             ifstr(i) $(RASKey) != ""
  689.                 Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(RASRebindError)
  690.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  691.                     goto ShellCodeError
  692.                 endif
  693.                 CloseRegKey $(RASKey)
  694.                 ifstr(i) $($R1) == "OK"
  695.                     set SaveNTN_InstallMode = $(!NTN_InstallMode)
  696.                     set !NTN_InstallMode = configure
  697.                     Shell "oemnsvra.inf" InstallOption $(!STF_LANGUAGE) "RAS" $(SrcDir) $(AddCopy) $(DoCopy) $(DoConfig) 
  698.                     set !NTN_InstallMode = $(SaveNTN_InstallMode)
  699.                 endif
  700.             endif
  701.         endif
  702.     endif
  703.     LibraryProcedure DontCare $(!NCPA_HANDLE), CPlSetup $(!STF_HWND),+
  704.               SECURESVC, $(ProductNWLNKSPXName), 3
  705.     EndWait
  706.     Ifint $(BillboardVisible) != 0
  707.         Shell "subroutn.inf" PopBillboard
  708.         Set BillboardVisible = 0
  709.     Endif
  710.     goto successful
  711. configureadapter = +
  712.     Debug-Output "OEMNXPIP.INF: At ConfigureAdapter"
  713.     ifstr(i) $(Option) == "NWLNKIPX"
  714.         Set BindList = {}
  715.         OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) LinkageKey
  716.         ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  717.             GetRegValue $(LinkageKey) "Bind" BindList
  718.             ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  719.                set BindList = *($(BindList),4)
  720.             else
  721.                Set BindList = {}
  722.             endif
  723.             CloseRegKey $(LinkageKey)
  724.         endif
  725.         ifstr(i) $(BindList) == {}
  726.             debug-output "NWLNK.INF: no binding info; warning user"
  727.             read-syms InfoDlgCantConfigure
  728.             goto infomsg
  729.         endif
  730.         Debug-Output "OEMNXPIP.INF: configureadapter, BindList = "$(BindList)
  731.         set OldVersionExisted = $(TRUE)
  732.         set CardList = ""
  733.         ForListDo $(BindList)
  734.             Split-String $($), "\", BindInfo
  735.             QueryListSize BindElem $(BindInfo)
  736.             Set BindName = *($(BindInfo),$(BindElem))
  737.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(BindName) $(MAXIMUM_ALLOWED) CardServiceKey
  738.             ifstr(i) $(CardServiceKey) != ""
  739.                 CloseRegKey $(CardServiceKey)
  740.                 Set CardList = $(CardList)"@"$(BindName)
  741.             endif
  742.         EndForListDo
  743.         ifstr(i) $(CardList) != ""
  744.             Debug-Output "OEMNXPIP.INF: configureadapter, CardList = "$(CardList)
  745.             LoadLibrary "x", $(!STF_WINDOWSSYSPATH)\ipxcfg.dll NWLNKLIB_HANDLE
  746.             set FLibraryErrCtl = 1
  747.             ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  748.             LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), RunIpxDlg, $(!STF_HWND) $(!STF_PRODUCT) "YES" $(!AUTONETIPXFRAMETYPE)
  749.             else
  750.                 LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), RunIpxDlg, $(!STF_HWND) $(!STF_PRODUCT)
  751.             endif
  752.             FreeLibrary $(NWLNKLIB_HANDLE)
  753.             set FLibraryErrCtl = 0
  754.             Debug-Output "OEMNXPIP.INF: configureadapter, ResultList = "$(ResultList)
  755.             Set Result = *($(ResultList),1)
  756.             Ifint $(Result) == 0
  757.                 set CommonStatus = STATUS_USERCANCEL
  758.             Else
  759.                 set CommonStatus = STATUS_REBOOT
  760.             Endif
  761.         else
  762.             set CommonStatus = STATUS_USERCANCEL
  763.         endif
  764.     else
  765.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  766.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  767.             Debug-Output "OEMNXPIP.INF: ShellCode error: cannot get an error string."
  768.             goto ShellCodeError
  769.         endif
  770.         set Error = $($R0)
  771.         set from = end
  772.         set to = end
  773.         set CommonStatus = STATUS_USERCANCEL
  774.         goto nonfatal
  775.     endif
  776.     goto end
  777. bindingadapter =+
  778.     set l_unattended = 0
  779.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  780.     ifstr(i) $(KeyProduct) != ""
  781.         GetRegValue $(KeyProduct) "STF_GUI_UNATTENDED" UnattendedList
  782.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  783.             set !STF_GUI_UNATTENDED = *($(UnattendedList),4)
  784.             DeleteRegValue $(KeyProduct) "STF_GUI_UNATTENDED"
  785.         endif
  786.         GetRegValue $(KeyProduct) "AUTONETIPXFRAMETYPE" FrameTypeList
  787.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  788.             set !AUTONETIPXFRAMETYPE = *($(FrameTypeList),4)
  789.             DeleteRegValue $(KeyProduct) "AUTONETIPXFRAMETYPE"
  790.         endif
  791.         GetRegValue $(KeyProduct) "Unattend" KeyUnattend
  792.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  793.             set l_unattended = *($(KeyUnattend),4)
  794.             DeleteRegValue $(KeyProduct) "Unattend"
  795.         endif
  796.         CloseRegKey $(KeyProduct)
  797.     endif
  798.     OpenRegKey $(!REG_H_LOCAL) "" $(LinkageKeyName) $(MAXIMUM_ALLOWED) KeyLinkage
  799.     ifstr(i) $(KeyLinkage) != ""
  800.         SetRegValue $(KeyLinkage) {Export,$(NoTitle),$(!REG_VT_MULTI_SZ),{"\Device\NwlnkIpx"}}
  801.         CloseRegKey $(KeyLinkage)
  802.     endif
  803.     Shell "nbinfo.inf" CheckMixRpcProtocol "NwlnkNb" 7 "nwlnkipx" "ncacn_nb_ipx" "rpcltccm.dll" "RpcLtScm.Dll"
  804.     LoadLibrary "x", $(!STF_WINDOWSSYSPATH)\ipxcfg.dll NWLNKLIB_HANDLE
  805.     set FLibraryErrCtl = 1
  806.     LibraryProcedure ResultList, $(NWLNKLIB_HANDLE), IPXCfgChk $(l_unattended)
  807.     FreeLibrary $(NWLNKLIB_HANDLE)
  808.     set FLibraryErrCtl = 0
  809.     Set Result = *($(ResultList),1)
  810.     ifint $(Result) == 0
  811.         Debug-Output "OEMNXPIP.INF:  reconfiguration not required"
  812.         set CommonStatus = STATUS_USERCANCEL
  813.         goto successful
  814.     else
  815.         Debug-Output "OEMNXPIP.INF:  reconfiguration required"
  816.     endif
  817.     goto configureadapter
  818. removeadapter = +
  819.     Shell $(UtilityInf), IsRefCountEqualZero $(ProductKeyName)
  820.     ifint $($R1) == 0
  821.         read-syms InUse$(!STF_LANGUAGE)
  822.         goto infomsg
  823.     endif
  824.     Debug-Output "OEMNXPIP.INF: At removeadapter"
  825.     Shell $(UtilityInf), RemoveWinsockInfo, $(ProductNWLNKIPXName)
  826.     Shell $(UtilityInf), RemoveWinsockInfo, $(ProductNWLNKSPXName)
  827.     Shell $(UtilityInf) RemoveRpcProtocol "ncacn_nb_ipx"
  828.     Shell $(UtilityInf) RemoveClientRpcProtocol "ncadg_ipx"
  829.     Shell $(UtilityInf) RemoveClientRpcProtocol "ncacn_spx"
  830.     Shell $(UtilityInf) RemoveServerRpcProtocol "ncadg_ipx"
  831.     Shell $(UtilityInf) RemoveServerRpcProtocol "ncacn_spx"
  832.     ForListDo $(OEM_ABANDON_SOFTWARE)
  833.         DEBUG-OUTPUT "Remove component: "$($)
  834.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $($)
  835.     EndForListDo
  836.     ForListDo  $(OEM_ABANDON_OPTIONS)
  837.         DEBUG-OUTPUT "Remove component: "$($)
  838.         Set UseSvcctrl = "YES"
  839.         Shell $(UtilityInf), RemoveService, $($), $(UseSvcctrl)
  840.     EndForListDo
  841.     Shell $(UtilityInf) RemoveServiceProvider $(ProductNWLNKIPXName)
  842.     Shell $(UtilityInf), RemoveNameSpaceProvider, $(ProviderGUID)
  843.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Browser\Parameters" $(MAXIMUM_ALLOWED) BrowserParamKey
  844.     ifstr(i) $(BrowserParamKey) != ""
  845.         DeleteRegValue $(BrowserParamKey) "DirectHostBinding"
  846.         CloseRegKey $(BrowserParamKey)
  847.     Endif
  848.     goto end
  849. UpgradeSoftware = +
  850.     Ifstr(i) $(Option) != NWLNKIPX
  851.         set CommonStatus = STATUS_NO_EFFECT
  852.         goto end
  853.     endif
  854.     OpenRegKey $(!REG_H_LOCAL) "" $(OldProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  855.     Ifstr $(KeyProduct) != $(KeyNull)
  856.         install "Install-Update"
  857.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  858.             goto fatal
  859.         endif
  860.         GetRegValue $(KeyProduct),"RefCount", RefCountInfo
  861.         CloseRegKey $(KeyProduct)
  862.         set OEM_ABANDON_OPTIONS = {+
  863.             "NWLINKSYS",+
  864.             "NWLINKSPX",+
  865.             "NWNBLINKSYS"}
  866.         set OEM_ABANDON_SOFTWARE = {+
  867.             "NWNBLINK",+
  868.             "NWLINKIPX",+
  869.             Streams}
  870.         Debug-Output "OEMNXPIP.INF: At RemoveWinsockInfo"
  871.         Shell $(UtilityInf), RemoveWinsockInfo, "NWLINKIPX"
  872.         Shell $(UtilityInf) RemoveRpcProtocol "ncacn_nb_ipx"
  873.         Ifstr(i) $($0) != NO_ERROR
  874.             Debug-Output "OEMNXPIP.INF: ERROR deleting IPX RPC protocol data"
  875.         Endif
  876.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation" $(MAXIMUM_ALLOWED) NwcKey
  877.         ifstr(i) $(NwcKey) == ""
  878.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncadg_ipx"
  879.             Ifstr(i) $($0) != NO_ERROR
  880.                 Debug-Output "OEMNXPIP.INF: ERROR deleting IPX RPC protocol data"
  881.             Endif
  882.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncacn_spx"
  883.             Ifstr(i) $($0) != NO_ERROR
  884.                 Debug-Output "OEMNXPIP.INF: ERROR deleting SPX RPC protocol data"
  885.             Endif
  886.         else
  887.             CloseRegKey $(NwcKey)
  888.         endif
  889.         ForListDo $(OEM_ABANDON_SOFTWARE)
  890.             DEBUG-OUTPUT "Remove component: "$($)
  891.             ifstr(i) $($) == "Streams"
  892.                 Shell $(UtilityInf), RemoveStreams
  893.             else
  894.                 Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), $($), FALSE
  895.             endif
  896.         EndForListDo
  897.         ForListDo  $(OEM_ABANDON_OPTIONS)
  898.             DEBUG-OUTPUT "Remove component: "$($)
  899.             ifstr(i) $($) != "NWLINKSPX"
  900.                 Set UseSvcctrl = "YES"
  901.             else
  902.                 Set UseSvcctrl = "NO"
  903.             endif
  904.             Shell $(UtilityInf), RemoveService, $($), $(UseSvcctrl)
  905.         EndForListDo
  906.         set OldInstallMode = $(!NTN_InstallMode)
  907.         set !NTN_InstallMode = install
  908.         Shell "" "InstallOption" $(!STF_LANGUAGE) "NWLNKIPX" +
  909.            $(!STF_SRCDIR) "NO" "NO" $(DoConfig)
  910.         set !NTN_InstallMode = $(OldInstallMode)
  911.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  912.         ifstr(i) $(KeyProduct) != ""
  913.             SetRegValue $(KeyProduct), $(RefCountInfo)
  914.             CloseRegKey $(KeyProduct)
  915.         endif
  916.     else
  917.         install "Install-Update"
  918.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  919.             goto fatal
  920.         endif
  921.         CloseRegKey $(KeyProduct)
  922.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NwlnkIpx\Parameters" $(MAXIMUM_ALLOWED) KeyParameters
  923.         ifstr(i) $(KeyParameters) != ""
  924.             GetRegValue $(KeyParameters), "ReplaceConfigDialog", ReplaceInfo
  925.             Debug-Output "GetRegValue returned "$(RegLastError)
  926.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  927.             SetRegValue $(KeyParameters) {ReplaceConfigDialog,$(NoTitle),$(!REG_VT_DWORD),0}
  928.             endif
  929.             CloseRegKey $(KeyParameters)
  930.         endif
  931.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NwlnkSpx\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) KeyNetRules
  932.         ifstr(i) $(KeyNetRules) != ""
  933.             set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXType)},+
  934.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleNWLNKSPXBindable)},+
  935.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleNWLNKSPXClass)},+
  936.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXUse)},+
  937.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKSPXBindForm)}}
  938.             Shell  $(UtilityInf), AddValueList, $(KeyNetRules), $(NewValueList)
  939.             CloseRegKey $(KeyNetRules)
  940.         endif
  941.     Shell $(UtilityInf), AddNameSpaceProvider, +
  942.             $(ProductNWLNKIPXDisplayName), +
  943.             $(ProviderImagePath), +
  944.             $(ProviderNameSpaces), +
  945.             TRUE, +
  946.             $(ProviderGUID)
  947.     Shell $(UtilityInf), AddServiceProvider, $(ProductNWLNKIPXName), +
  948.         $(ProviderImagePath), 8
  949.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation" $(MAXIMUM_ALLOWED) NwcKey
  950.         ifstr(i) $(NwcKey) == ""
  951.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncadg_ipx"
  952.             Shell $(UtilityInf) RemoveServerRpcProtocol "ncacn_spx"
  953.         else
  954.             CloseRegKey $(NwcKey)
  955.         endif
  956.         Shell $(UtilityInf) AddClientRpcProtocol "ncadg_ipx" "RpcLtCcm.Dll"
  957.         Shell $(UtilityInf) AddClientRpcProtocol "ncacn_spx" "RpcLtCcm.Dll"
  958.     endif
  959.     LibraryProcedure DontCare $(!NCPA_HANDLE), CPlSetup $(!STF_HWND),+
  960.               SECURESVC, $(ProductNWLNKSPXName), 3
  961.     Set MappingOption = NWLNKIPX
  962.     Shell $(UtilityInf) UpdateWinsockMappings $(Product$(MappingOption)Name) $(ProductNWLNKIPXWshDllPath)
  963.     Set MappingOption = NWLNKSPX
  964.     Shell $(UtilityInf) UpdateWinsockMappings $(Product$(MappingOption)Name) $(ProductNWLNKIPXWshDllPath)
  965.     set RegistryErrorIndex = $($R0)
  966.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  967.         Debug-Output "OEMNXPIP.INF: Registry error: UpdateWinsockInfo."
  968.     Endif
  969.     set UnattendInstallMode = 0
  970.     Ifstr(i) $(!STF_UNATTENDED) == "YES"
  971.        set UnattendInstallMode = 1
  972.        Debug-Output "IPX: UnattendInstallMode(3) = "$(UnattendInstallMode)
  973.     endif
  974.     Ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  975.        set UnattendInstallMode = 1
  976.        Debug-Output "IPX: UnattendInstallMode(4) = "$(UnattendInstallMode)
  977.     endif
  978.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) UnattendProduct
  979.     ifstr(i) $(UnattendProduct) != ""
  980.         SetRegValue $(UnattendProduct) {Unattend,$(NoTitle),$(!REG_VT_DWORD),$(UnattendInstallMode)}
  981.         CloseRegKey $(UnattendProduct)
  982.     endif
  983.     OpenRegKey $(!REG_H_LOCAL) "" $(ServiceNWLNKKeyName) $(MAXIMUM_ALLOWED) NWLNKKeyService
  984.     Ifstr $(NWLNKKeyService) != $(KeyNull)
  985.         SetRegValue $(NWLNKKeyService) {Group,$(NoTitle),$(!REG_VT_SZ),"PNP_TDI"}
  986.         CloseRegKey $(NWLNKKeyService)
  987.     endif
  988.     OpenRegKey $(!REG_H_LOCAL) "" $(ServiceNWLNKNBKeyName) $(MAXIMUM_ALLOWED) NWLNKNBKeyService
  989.     Ifstr $(NWLNKNBKeyService) != $(KeyNull)
  990.         SetRegValue $(NWLNKNBKeyService) {Group,$(NoTitle),$(!REG_VT_SZ),"PNP_TDI"}
  991.         CloseRegKey $(NWLNKNBKeyService)
  992.     endif
  993.         OpenRegKey $(!REG_H_LOCAL) "" $(NWLNKIPXNetRuleKeyName) $(MAXIMUM_ALLOWED) NWLNKIPXKeyNetRules
  994.         Ifstr $(NWLNKIPXKeyNetRules) != $(KeyNull)
  995.             SetRegValue $(NWLNKIPXKeyNetRules) {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKIPXUse)}
  996.             CloseRegKey $(NWLNKIPXKeyNetRules)
  997.         endif
  998.         OpenRegKey $(!REG_H_LOCAL) "" $(NWLNKNBNetRuleKeyName) $(MAXIMUM_ALLOWED) NWLNKNBKeyNetRules
  999.         Ifstr $(NWLNKNBKeyNetRules) != $(KeyNull)
  1000.             SetRegValue $(NWLNKNBKeyNetRules) {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleNWLNKNBUse)}
  1001.             CloseRegKey $(NWLNKNBKeyNetRules)
  1002.         endif
  1003.         OpenRegKey $(!REG_H_LOCAL) "" $(NWLNKIPXKeyName) $(MAXIMUM_ALLOWED) NWLNKIPXKey
  1004.         Ifstr $(NWLNKIPXKey) != $(KeyNull)
  1005.             SetRegValue $(NWLNKIPXKey) {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductNWLNKIPXDescription)}
  1006.             SetRegValue $(NWLNKIPXKey) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductNWLNKIPXOpSupport)}
  1007.             CloseRegKey $(NWLNKIPXKey)
  1008.         endif
  1009.         OpenRegKey $(!REG_H_LOCAL) "" $(NWLNKNBKeyName) $(MAXIMUM_ALLOWED) NWLNKNBKey
  1010.         Ifstr $(NWLNKNBKey) != $(KeyNull)
  1011.             SetRegValue $(NWLNKNBKey) {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductNWLNKNBDescription)}
  1012.             SetRegValue $(NWLNKNBKey) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductNWLNKNBOpSupport)}
  1013.             CloseRegKey $(NWLNKNBKey)
  1014.         endif
  1015.         Shell $(UtilityInf) AddServerRpcProtocol "ncadg_ipx" "RpcLtScm.Dll"
  1016.         Shell $(UtilityInf) AddServerRpcProtocol "ncacn_spx" "RpcLtScm.Dll"
  1017.     goto end
  1018. successful = +
  1019.     goto end
  1020. infomsg =+
  1021.    read-syms InfoDlg
  1022.    ui start "Warning"
  1023.    set CommonStatus = STATUS_USERCANCEL
  1024.    goto end
  1025. warning = +
  1026.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1027.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1028.         goto ShellCodeError
  1029.     endif
  1030.     ifstr(i) $($R1) == "OK"
  1031.         goto $(to)
  1032.     else-ifstr(i) $($R1) == "CANCEL"
  1033.         goto $(from)
  1034.     else
  1035.         goto "end"
  1036.     endif
  1037. nonfatal = +
  1038.     ifstr(i) $(Error) == ""
  1039.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1040.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1041.             goto ShellCodeError
  1042.         endif
  1043.         set Error = $($R0)
  1044.     endif
  1045.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "NONFATAL", $(Error)
  1046.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1047.         goto ShellCodeError
  1048.     endif
  1049.     ifstr(i) $($R1) == "OK"
  1050.         goto $(from)
  1051.     else
  1052.         goto "end"
  1053.     endif
  1054. fatalregistry = +
  1055.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1056.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1057.         goto ShellCodeError
  1058.     endif
  1059.     set Error = $($R0)
  1060.     goto fatal
  1061. fatal = +
  1062.     ifstr(i) $(Error) == ""
  1063.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1064.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1065.             goto ShellCodeError
  1066.         endif
  1067.         set Error = $($R0)
  1068.     endif
  1069.     Ifint $(BillboardVisible) != 0
  1070.         Shell "subroutn.inf" PopBillboard
  1071.         Set BillboardVisible = 0
  1072.     Endif
  1073.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1074.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1075.         goto ShellCodeError
  1076.     endif
  1077.    goto setfailed
  1078. ShellCodeError = +
  1079.     set DlgType      = "MessageBox"
  1080.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1081.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  1082.     set STF_MB_TYPE  = 1
  1083.     set STF_MB_ICON  = 3
  1084.     set STF_MB_DEF   = 1
  1085.     ui start "Error Message"
  1086.     goto setfailed
  1087. setfailed = +
  1088.     set CommonStatus = STATUS_FAILED
  1089.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1090.         set OEM_ABANDON_ON = FALSE
  1091.         goto removeadapter
  1092.     endif
  1093.     goto end
  1094. end = +
  1095.     goto term
  1096. term = +
  1097.     Return $(CommonStatus)
  1098. [CreateNWLNKConfiguration]
  1099.     read-syms GeneralConstants
  1100.     Set NWLNKSvcKeyHandle = $($0)
  1101.     Debug-Output "NWLNK.INF: installing NWLNK configuration:"
  1102.     CreateRegKey $(NWLNKSvcKeyHandle) {"NetConfig",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNetConfig
  1103.     CloseRegKey $(KeyNetConfig)
  1104. CreateNWLNKConfigDone = +
  1105.     Debug-Output "NWLNK.INF: installing NWLNK.....done."
  1106.     Return NO_ERROR
  1107. [Install-Option]
  1108.     set STF_VITAL = ""
  1109.     ifstr(i) $(AddCopy) == "YES"
  1110.         Debug-Output "NWLNK.INF: Adding files to copy list"
  1111.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1112.         AddSectionFilesToCopyList Files-NWLNKEXE $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1113.     endif
  1114.     ifstr(i) $(DoCopy) == "YES"
  1115.        Debug-Output "NWLNK.INF: Copying Files"
  1116.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1117.        CopyFilesInCopyList
  1118.     endif
  1119.     ifstr(i) $(DoConfig) == "YES"
  1120.     endif
  1121.     Exit
  1122. [Install-Update]
  1123.    set STF_VITAL        = ""
  1124.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1125.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1126.    AddSectionFilesToCopyList Files-NWLNKEXE $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1127.    Exit
  1128. [RipDialog]
  1129.     DlgType      = "MessageBox"
  1130.     STF_MB_TITLE = $(ProCaption)
  1131.     STF_MB_TEXT  = $(InstallRip)
  1132.     STF_MB_TYPE  = 3
  1133.     STF_MB_ICON  = 1
  1134.     STF_MB_DEF   = 1
  1135. [Source Media Descriptions]
  1136.     1 = "Windows NT Server CD-ROM", TAGFILE = cdrom_s.40
  1137. [Signature]
  1138.     FileType = MICROSOFT_FILE
  1139. [GetSignature]
  1140.     read-syms Signature
  1141.     return $(FileType)
  1142. [ProductType]
  1143. STF_PRODUCT  = LanmanNT
  1144. STF_PLATFORM = I386
  1145. [Files-Inf]
  1146. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  1147. [Files-NWLNKEXE]
  1148. 1,IPXROUTE.EXE , SIZE=20752
  1149. 1,NWPROVAU.DLL , SIZE=163088
  1150. [Files-NWLNKIPX]
  1151. 1,NWLNKIPX.SYS , SIZE=70864
  1152. 1,NWLNKNB.SYS , SIZE=66224
  1153. 1,NWLNKSPX.SYS , SIZE=58576
  1154. [LanguagesSupported]
  1155.     ENG
  1156. [OptionsTextENG]
  1157.     NWLNKIPX     = "NWLink IPX/SPX Compatible Transport"
  1158. [FileConstantsENG]
  1159. ProCaption   = "Windows NT Setup"
  1160. ProCancel    = "Cancel"
  1161. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1162.                "Are you sure you want to cancel copying files?"
  1163. ProCancelCap = "Network Setup Message"
  1164. ProText1     = "Copying:"
  1165. ProText2     = "To:"
  1166. FunctionTitle            = "NWLink IPX/SPX Compatible Transport Setup"
  1167. ProductNWLNKIPXDescription  = "An implementation of the IPX and SPX protocols, which are used by the NetWare networks."
  1168. ProductNWLNKIPXDisplayName = "NWLink IPX/SPX Compatible Transport Protocol"
  1169. ProductNWLNKIPXTitle       = "NWLink IPX/SPX Compatible Transport"
  1170. ProductNWLNKNBDescription   = "Enables Novell NetBIOS packets to be sent between a NetWare server running Novell NetBIOS and a Windows NT computer, or between two Windows NT computers."
  1171. ProductNWLNKNBDisplayName  = "NWLink NetBIOS"
  1172. ProductNWLNKNBTitle        = "NWLink NetBIOS"
  1173. ProductNWLNKNBSYSDisplayName = "NWLinkNBsys"
  1174. ProductNWLNKNBSYSTitle     = "NWLINK NetBIOS Driver"
  1175. ProductNWLNKSPXDescription  = "NWLink SPX Protocol Driver"
  1176. ProductNWLNKSPXDisplayName = "NWLink SPX/SPXII Protocol"
  1177. ProductNWLNKSPXTitle       = "NWLink SPX Protocol"
  1178. CompetitorDisplayName = "NWLink IPX/SPX II Transport"
  1179. ShellCodeErrorTitle     = "Error: "$(FunctionTitle)
  1180. ShellCodeErrorText      = "Shell Code Error."
  1181. RASRebindError = "Setup has discovered that you have Remote Access Services installed. Do you want to configure RAS to support the NWLINK protocol?"
  1182. InstallRip     = "Do you want to install the IPX Rip Router?"
  1183. [DialogConstantsENG]
  1184. Help        = "&Help"
  1185. Exit        = "Cancel"
  1186. OK          = "OK"
  1187. HelpContext = ""
  1188. Continue    = "C&ontinue"
  1189. Cancel      = "C&ancel"
  1190. [FileDependentDlgENG]
  1191. [InfoDlg]
  1192. STF_MB_TITLE = "Information Message"
  1193. DlgType      = "MessageBox"
  1194. STF_MB_TEXT  = $(InfoMsgText)
  1195. STF_MB_TYPE  = 1
  1196. STF_MB_ICON  = 5
  1197. STF_MB_DEF   = 1
  1198. [InfoDlgCantConfigure]
  1199. InfoMsgText = "The IPX Protocol service is not currently configured to use any adapters."+
  1200.     "  If you have just installed it, return to the Networks dialog and "+
  1201.     "click  OK.  You will then have the opportunity to configure the adapters."
  1202. [InUseENG]
  1203. InfoMsgText = "The IPX Protocol service is being used by another service(s). "+
  1204.     "Please remove other related components before removing IPX Protocol."
  1205. [Billboard1ENG]
  1206. Status = "Installing IPX Protocol and related services..."
  1207. [FatalError1ENG]
  1208. Error = "Another IPX/SPX protocol driver is currently installed in this machine, "+
  1209.         "and the network interface cannot operate properly with both drivers installed. "+
  1210.         "If you still wish to install the NWLNK protocol driver, you must first "+
  1211.         "remove the "$(CompetitorDisplayName)" component and reboot your machine."
  1212.